[小ネタ] ECS で Windows コンテナを起動させ続ける方法
この記事はアノテーション株式会社 AWS Technical Support Advent Calendar 2023 | Advent Calendar 2023 - Qiita 24日目の記事です。
アノテーション・テクニカルサポートチームの hato です。
サポート業務で Windows コンテナを起動し ECS Exec でコマンド操作を行うことがあります。
単純なベースイメージだとコンテナがすぐに終了するため、Linux コンテナの場合は次のような無限ループを設定する場合があります。
/bin/sh,-c,while true; do sleep 1; done
Windows コンテナの場合は、コマンドが違うのため少し調べてみました。
方法その1、コマンドプロンプトで ping
コマンドプロンプト(cmd.exe
)で Ping コマンドを localhost に実行し続ける方法です。
cmd,/s,/c,ping -t localhost
JSON の場合は次のように設定します。
"command": [ "cmd", "/s", "/c", "ping -t localhost" ],
方法その2、PowerShellで Start-Sleep
PowerShellで Start-Sleep コマンドを無限ループに実行し続ける方法です。
Linux コンテナのアプローチに近いと思います。
powershell,-Command,while ($true) {Start-Sleep -Seconds 1}
JSON の場合は次のように設定します。
"command": [ "powershell", "-Command", "while ($true) {Start-Sleep -Seconds 1}" ],
参考資料
/bin/sh -c "while true; do echo hello world; sleep 1; done"
- cmd | Microsoft Learn
- PowerShell | Microsoft Learn
- ping | Microsoft Learn
- Start-Sleep (Microsoft.PowerShell.Utility) - PowerShell | Microsoft Learn
- Windows コンテナーのトラブルシューティング | Microsoft Learn
- Amazon EC2 および AWS Fargate 上の Windows コンテナにアクセスするための Amazon ECS Exec のご紹介 | Amazon Web Services ブログ
アノテーション株式会社について
アノテーション株式会社は、クラスメソッド社のグループ企業として「オペレーション・エクセレンス」を担える企業を目指してチャレンジを続けています。「らしく働く、らしく生きる」のスローガンを掲げ、様々な背景をもつ多様なメンバーが自由度の高い働き方を通してお客様へサービスを提供し続けてきました。現在当社では一緒に会社を盛り上げていただけるメンバーを募集中です。少しでもご興味あれば、アノテーション株式会社WEBサイトをご覧ください。